package com.atguigu.tingshu.vo.order;

import com.atguigu.tingshu.common.util.Decimal2Serializer;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import jakarta.validation.constraints.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * 订单明细
 * @author sun
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class OrderDetailVo {
	/**
	 * 付费项目id
	 */
	@NotNull(message = "付费项目id不能为空")
	private Long itemId;
	/**
	 * 付费项目名称
	 */
	@NotEmpty(message = "付费项目id不能为空")
	private String itemName;
	/**
	 * 付费项目图片url
	 */
	@NotEmpty(message = "付费项目id不能为空")
	private String itemUrl;

	/**
	 * <p>
	 *     Digits    integer： 整数位最多几位 fraction：小数位最多几位 message：同上，有默认提示
	 * </p>
	 * <p>
	 *     DecimalMax   value：最大值   inclusive：是否可以等于最大值，默认true，<= 最大值       message：错误提示（默认有一个错误提示i18n支持中文）
	 * </p>
	 *
	 * <p>
	 *     DecimalMin   value：最小值   inclusive：是否可以等于最小值，默认true，>= 最小值       message：错误提示（默认有一个错误提示i18n支持中文）
	 * </p>
	 *
	 */
	@DecimalMin(value = "0.00", inclusive = false, message = "付费项目价格必须大于0.00")
	@DecimalMax(value = "9999.99", message = "付费项目价格必须小于9999.99")
	@Digits(integer = 4, fraction = 2)
	@JsonSerialize(using = Decimal2Serializer.class)
	private BigDecimal itemPrice;

}